/**
 * Copyright 2013 ABSir's Studio
 * 
 * All right reserved
 *
 * Create on 2013-8-27 下午1:11:59
 */
package com.absir.android.batch;

import android.app.Activity;
import android.content.Intent;
import android.widget.LinearLayout;
import android.widget.TextView;
import cn.waps.AppConnect;

import com.absir.android.context.annotation.AfterCreate;
import com.absir.android.goods.GoodsContextUtils;
import com.absir.android.view.annotation.InjectLayer;
import com.absir.android.view.annotation.InjectMethod;
import com.absir.android.view.annotation.InjectView;
import com.umeng.analytics.MobclickAgent;
import com.umeng.socialize.controller.RequestType;
import com.umeng.socialize.controller.UMServiceFactory;
import com.umeng.socialize.controller.UMSocialService;
import com.umeng.update.UmengUpdateAgent;

/**
 * @author absir
 * 
 */
@InjectLayer
public class MainActivity extends Activity {

	/** UM_SOCIAL_SERVICE */
	public static final UMSocialService UM_SOCIAL_SERVICE = UMServiceFactory.getUMSocialService("com.umeng.share", RequestType.SOCIAL);

	@InjectView
	LinearLayout ad_layout;

	@InjectView
	TextView coin_text;

	@InjectView
	TextView score_text;

	/** updateChecked */
	private static boolean updateChecked = true;

	@AfterCreate
	protected void afterCreate() {
		if (updateChecked) {
			updateChecked = false;
			update_button();
		}

		if (ad_layout != null) {
			AppConnect.getInstance(this).showMiniAd(this, ad_layout, 10);
		}
	}

	public void onResume() {
		super.onResume();
		MobclickAgent.onResume(this);
		if (coin_text != null) {
			coin_text.setText(String.valueOf(GoodsContextUtils.getCoinGoodsDefine().getGoodsCoin()));
		}

		if (score_text != null) {
			score_text.setText(String.valueOf(AppUtils.getScore()));
		}
	}

	public void onPause() {
		super.onPause();
		MobclickAgent.onPause(this);
	}

	@InjectMethod
	public void integral_wall_button() {
		AppConnect.getInstance(this).showOffers(this);
	}

	@InjectMethod
	private void store_button() {
		startActivity(new Intent(this, StoreActivity.class));
	}

	@InjectMethod
	private void share_button() {
		/**
		 * 参数说明： Context
		 * 当前所在的Activity，如果在TabActivity的子Activity中应该使用TabActivity。[必须] String
		 * 选择分享编辑页中的默认文字。[可选] byte[] 分享图片的二进制数据.[可选]
		 */
		UM_SOCIAL_SERVICE.shareTo(this, "我使用了" + getApplication().getApplicationInfo().name + ", 非常喜欢你也来尝试一下吧！", null);
	}

	@InjectMethod
	private void comment_button() {
		/**
		 * 设置新回复通知 当开发者回复用户反馈后，如果需要提醒用户，请在应用程序的入口Activity的OnCreate()方法中下添加以下代码
		 * 
		 * agent.sync(); 若调用该接口，反馈模块将在你程序启动后于后台检查是否有新的来自开发者的回复。
		 * 若有，我们将在通知栏提醒用户，若无，则不会打扰用户。你也可以选择不调用该接口，这样我们会在用户进入反馈界面后，再去检查是否存在新的回复。
		 * 如果你希望改变默认通知方式， 可以使用接口
		 * 
		 * agent.getDefaultConversation().sync(listener);
		 */
		// FeedbackAgent agent = new FeedbackAgent(this);
		// agent.startFeedbackActivity();
		// 用户反馈
		AppConnect.getInstance(this).showFeedback(this);
	}

	@InjectMethod
	private void update_button() {
		/**
		 * 手动处理更新回调 UmengUpdateAgent.update(this);
		 * UmengUpdateAgent.setUpdateAutoPopup(false);
		 * UmengUpdateAgent.setUpdateListener(new UmengUpdateListener() {
		 * 
		 * @Override public void onUpdateReturned(int
		 *           updateStatus,UpdateResponse updateInfo) { switch
		 *           (updateStatus) { case 0: // has update
		 *           UmengUpdateAgent.showUpdateDialog(mContext, updateInfo);
		 *           break; case 1: // has no update Toast.makeText(mContext,
		 *           "没有更新", Toast.LENGTH_SHORT) .show(); break; case 2: // none
		 *           wifi Toast.makeText(mContext, "没有wifi连接， 只在wifi下更新",
		 *           Toast.LENGTH_SHORT) .show(); break; case 3: // time out
		 *           Toast.makeText(mContext, "超时", Toast.LENGTH_SHORT) .show();
		 *           break; } } });
		 */
		UmengUpdateAgent.update(this);
	}
}
